package com.sanchunhui.psc.data.api

import com.sanchunhui.psc.data.protocol.*
import retrofit2.http.Body
import retrofit2.http.POST
import retrofit2.http.Path
import rx.Observable

/**
 * @Author zyx
 * @Date 2021/7/8-14:24
 * @Dscribe  分组相关接口
 */
interface ProjectTeamApi {

    /*
        获取所在项⽬下所有分组
     */
    @POST("project/team")
    fun getTeamList(@Body req: TokenReq) : Observable<ResponseInfo>

    /*
        获取分组下所有成员
     */
    @POST("team/member/i{id}")
    fun getTeamMember(@Path("id") teamID : Int, @Body req: TokenReq) : Observable<ResponseInfo>

    /*
         添加分组到所在项⽬
     */
    @POST("project/addteam")
    fun addTeam(@Body req: AddTeamReq) : Observable<ResponseInfo>

    /*
        获取所有未在项⽬中⽤户的列表
     */
    @POST("member/search")
    fun searchMember(@Body req:SearchMemberReq) : Observable<BaseResp<MutableList<UserInfo>?>>

    /*
        获取所有公司组成的映射（键值对）
     */
    @POST("company/select")
    fun getCompanyList(@Body req: TokenReq) : Observable<ResponseInfo>

    /*
         获取所有⼯种组成的映射（键值对）
     */
    @POST("job/select")
    fun getJobList(@Body req: TokenReq) : Observable<ResponseInfo>

    /*
        更改分组状态
     */
    @POST("team/status/i{id}")
    fun changeTeamStatus(@Path("id") teamId : Int, @Body req: TeamStatusReq) : Observable<BaseResp<String>>

    /*
        添加成员到指定分组
     */
    @POST("team/addmember/i{id}")
    fun addTeamMember(@Path("id") teamId: Int,@Body req: TeamAddMemberReq) : Observable<BaseResp<String>>

    /*
        设置指定分组名称
     */
    @POST("team/setinfo/i{id}")
    fun setTeamInfo(@Path("id") teamId: Int,@Body req: SetTeamInfoReq) : Observable<BaseResp<String>>

    /*
       设置指定分组负责⼈
     */
    @POST("team/setleader/i{id}")
    fun setTeamLeader(@Path("id") teamId: Int,@Body req: SetTeamLeaderReq) : Observable<BaseResp<String>>

    /*
        移除项⽬（分组）中的成员
     */
    @POST("team/delmember")
    fun deleteMember(@Body req: DeleteMemberReq) : Observable<BaseResp<String>>

    /*
        获取分组在线的成员ID
     */
    @POST("team/onlinemember/i{id}")
    fun getOnlineMember(@Path("id") teamId: Int, @Body req: TokenReq) : Observable<BaseResp<MutableList<Char>>>


    /*
       获取所在或指定分组信息
    */
    @POST("team/info")
    fun getTeamInfo(@Body req: TokenReq) : Observable<ResponseInfo>

    @POST("team/info/i{id}")
    fun getProjectTeamInfo(@Path("id") teamId: Int, @Body req: TokenReq) : Observable<ResponseInfo>

    /*
        获取所在项⽬信息
     */
    @POST("project/info")
    fun getProjectInfo(@Body req: TokenReq) : Observable<ResponseInfo>

    /*
        更改项⽬状态
     */
    @POST("project/status")
    fun changeProjectStatus(@Body req:ProjectStatusReq) : Observable<ResponseInfo>

}